﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using EntidadesCompartidas;
using Logica;
using System.IO;

namespace Smart_House_System
{
    public partial class Formulario_web11 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                dislabeTextCasa();
                dislabeTextPlano();
            }
        }

        public static bool userRegistred = false;
        public static bool houseRegistred = false;
        public static bool planoRegistred = false;

        private void dislabeTextCliente()
        {
            txtApellido.Enabled = false;
            txtCedula.Enabled = false;
            txtNombre.Enabled = false;
            txtPassword.Enabled = false;
            txtUsuario.Enabled = false;
            comboRol.Disabled = false;
            rfvPass.Enabled = false;
        }

        private void enableTextCliente()
        {
            txtApellido.Enabled = true;
            txtCedula.Enabled = true;
            txtNombre.Enabled = true;
            txtPassword.Enabled = true;
            txtUsuario.Enabled = true;
            comboRol.Disabled = true;
            rfvPass.Enabled = true;
        }

        private void dislabeTextCasa()
        {
            txtDireccion.Enabled = false;
            txtServicio.Enabled = false;
           // txtCedula2.Enabled = false;
            flpFoto.Enabled = false;
            rfvDireccion.Enabled = false;
            rfvServ.Enabled = false;
            rfvFoto.Enabled = false;
        }

        private void enableTextCasa()
        {
            txtDireccion.Enabled = true;
            txtServicio.Enabled = true;
            flpFoto.Enabled = true;
            rfvDireccion.Enabled = true;
            rfvServ.Enabled = false;
            rfvFoto.Enabled = true;
        }

        private void dislabeTextPlano()
        {
            rfvPlano.Enabled = false;
            fuPlano.Enabled = false;
            btnAgregarPlani.Visible = false;
        }

        private void enableTextPlano()
        {
            rfvPlano.Enabled = true;
            fuPlano.Enabled = true;
            btnAgregarPlani.Visible = true;
        }

        protected void btnSiguiente_Click(object sender, EventArgs e)
        {
            try
            {
                if (Accordion1.SelectedIndex == 0)
                {
                    Usuario usu = new Usuario();

                    usu.Apellido = txtApellido.Text;
                    usu.User = txtUsuario.Text;
                    usu.Pass = txtPassword.Text;
                    usu.Ci = int.Parse(txtCedula.Text);
                    if (comboRol.SelectedIndex == 0)
                    {
                        usu.ElRol = RolUsuario.habPrincipal;
                    }
                    else if (comboRol.SelectedIndex == 1)
                    {
                        usu.ElRol = RolUsuario.habSecundario;
                    }
                    usu.Nombre = txtNombre.Text;

                    FabricaLogica.getLogicaUsuario().AltaUsuario(usu);
                    Accordion1.SelectedIndex = 1;
                    dislabeTextCliente();
                    enableTextCasa();
                //    txtCedula2.Text = txtCedula.Text;
                    lblMensaje.ForeColor = System.Drawing.Color.Green;
                    lblMensaje.Text = "Cliente agregado";
                }
                else if (Accordion1.SelectedIndex == 1)
                {

                    string nombreArchivoFoto = Path.GetFileName(flpFoto.PostedFile.FileName);
                    string rutaFoto = Server.MapPath("~") + "\\Fotos\\" + nombreArchivoFoto;
                    Usuario usu = new Usuario();
                    usu.Ci = int.Parse(txtCedula.Text);
                    Casa _casa = new Casa();

                    _casa.Direccion = txtDireccion.Text;
                    _casa.Servicio = txtServicio.Text;
                    _casa.Usuarios = new List<Usuario>();
                    _casa.Usuarios.Add(usu);
                    _casa.Foto = "../Fotos/" + nombreArchivoFoto;
                    _casa.Id = 0;
                    _casa.Planos = null;

                    int idCasa = FabricaLogica.getLogicaCasa().AltaCasa(_casa);
                    flpFoto.PostedFile.SaveAs(rutaFoto);
                    Accordion1.SelectedIndex = 2;
                    dislabeTextCasa();
                    //string newFolderPath = Server.MapPath("~") + "Planos\\" + txtCedula2.Text + "";
                    //Directory.CreateDirectory(newFolderPath);
                    txtIdCasa.Text = idCasa.ToString();
                    enableTextPlano();
                    lblMensaje.ForeColor = System.Drawing.Color.Green;
                    lblMensaje.Text = "Casa agregada";
                    btnSiguiente.Text = "Finalizar";
                }
                else if (Accordion1.SelectedIndex == 2)
                {
                    if (txtIdCasa.Text != "" && txtIdPlano.Text != "")
                    {
                        Response.Redirect("Default.aspx");
                    }
                    else
                    {
                        lblMensaje.ForeColor = System.Drawing.Color.Red;
                        lblMensaje.Text = "Debe ingresar al menos un plano";
                    }
                }
            }
            catch (Exception ex)
            {
                lblMensaje.Text = ex.Message;
            }
        }

        protected void btnAgregarPlani_Click(object sender, EventArgs e)
        {
            try
            {
                Plano miPlano = new Plano();
                string nombreArchivoPlano = Path.GetFileName(fuPlano.PostedFile.FileName);
                string rutaPlano = Server.MapPath("~") + "\\Planos\\" + nombreArchivoPlano;
                miPlano.Foto = rutaPlano;
                miPlano.Foto = "../Planos/" + nombreArchivoPlano;
                miPlano.LaCasa = new Casa();
                miPlano.LaCasa.Id = int.Parse(txtIdCasa.Text);
                int idPlano = FabricaLogica.getLogicaPlano().AltaImagenPlano(miPlano);
                txtIdPlano.Text = idPlano.ToString();
                fuPlano.PostedFile.SaveAs(rutaPlano);
                lblMensaje.ForeColor = System.Drawing.Color.Green;
                lblMensaje.Text = "Plano agregado";
                Accordion1.SelectedIndex = 2;
                enableTextPlano();
                btnSiguiente.CausesValidation = false;
            }
            catch (Exception ex)
            {
                lblMensaje.ForeColor = System.Drawing.Color.Red;
                lblMensaje.Text = ex.Message;
            }
        }

        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            if (txtIdCasa.Text == "" && txtIdPlano.Text == "")
            {
                Response.Redirect("Default.aspx");
            }
        }

    }
}